Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Earth Space Station Program Additions #2326

Merged
merged 46 commits into from
Aug 18, 2024
Merged

Conversation

Teykn
Copy link
Contributor

@Teykn Teykn commented Jan 27, 2024

This PR is a clone of #2204 , created due to merging issues. It is still incomplete.

You can read more about what this PR adds in the old one listed above.

@Ballatik
Copy link
Contributor

The contract path that Ultrafiltre and I have been going down with this was:

  1. Combine first/first direct into one contract that is docking port agnostic. Check for crew capacity on launch, then check for crew and orbit parameters, then check for habitation science progress.
  2. Change early space station contract to reflect Salyut style stations, requiring new launches instead of requiring docking. habitation science progress is tracked, with the required completion level determined by $RepeatEarlySpaceStation_Count. The effect there is that you can do the contract up to 4 times if you launch them for each 30d worth of science, but you can't complete 90% of the science on your first station and then launch 4 new stations for 1 day to get free rep.
  3. Add auto-accepted science contract requiring completion of long term habitation 1, with optional rewards for other crewed science at that tier. This contract also increments the $RepeatEarlySpaceStation_Count to keep the repeatable contracts up to date.
  4. (Maybe) Combine all of the add module/supply/rotate crew contracts into one that doesn't use the performance breaking expressions in the data fields. Pilot existing station to set target vessel, launch a new supply vessel, then check for optional parameters (crew, supplies, etc.) on rendezvous, check for docking, then complete on return of the supply vessel.

Ballatik and others added 10 commits January 27, 2024 17:11
Disabled station upkeep contracts to, replaced with single contract with multiple optional parameters.  New contract avoids expressions in requirement data that caused performance issues.
Add autoaccepted science tracker contracts for both tiers of habitation science with optional rep rewards for other crewed station science completion.  Proto tier version updates the repeat count so that any repeatable contracts at that tier check for actual progress and not just a launch.
Make first station contract docking port agnostic so that it will function with a direct or indirect launch.  Changed initial duration to 15 days since very basic direct stations may have sanity challenges after that, and overall science progress is checked elsewhere.
Make early space station repeatable docking port agnostic as well.  It will work for a direct Salyut style launch or an indirect launch.
Added commas and an index value
@lighthea
Copy link
Contributor

I think the disabled contracts should be removed for clarity sake
I am also unsure of the need of an explicit recrew / resupply contract and I think it is part of the difficulty here to make a cheap launch vehicle and balance other rewards to make it possible

@Teykn
Copy link
Contributor Author

Teykn commented Jan 28, 2024

I think the disabled contracts should be removed for clarity sake I am also unsure of the need of an explicit recrew / resupply contract and I think it is part of the difficulty here to make a cheap launch vehicle and balance other rewards to make it possible

Maybe those contracts could be moved to an ISS program? I feel that those contracts make sense for second gen and later stations (skylab and later), but not for earlier stations

One thing I just remembered is that instead of the “all vessels where” data node, a better solution would be to save applicable stations into a list. Vessel parameter groups have a defineList option iirc

@lighthea
Copy link
Contributor

I think the disabled contracts should be removed for clarity sake I am also unsure of the need of an explicit recrew / resupply contract and I think it is part of the difficulty here to make a cheap launch vehicle and balance other rewards to make it possible

Maybe those contracts could be moved to an ISS program? I feel that those contracts make sense for second gen and later stations (skylab and later), but not for earlier stations

One thing I just remembered is that instead of the “all vessels where” data node, a better solution would be to save applicable stations into a list. Vessel parameter groups have a defineList option iirc

Yes I tested the defineList method and that works. Also I approve of displacing them to a new folder for LateStations

- Linked together each contract
- Repurposed original program to Early Space Stations
- Corrected Early experiments EC consumptions
- Added more science gains from experiments
- Removed duplicate goals in contracts
@lighthea
Copy link
Contributor

I playtested the prototype and early space station contracts. They seem functional and should work as intended. I think we can try to release it to others in order to balance rewards now

Changed early/proto contracts to use different iterators instead of both using RepeatEarlySpaceStation_Count.  Added incrementor to early station science contract.
Added duration requirements to supply contracts.  This will limit each iteration of the science count to a supply or launch station completion instead of allowing for both.
Made Second Gen space station non-repeatable, added 15 day duration requirement.
Shifted Rep rewards more towards required contracts and away from optionals.  Completing just the required will likely reward 3750, which is about 1000 less than crewed lunar.  maximum is 7250.
Lowered crew requirement for second gen to 3 to match skylab.  Kept capacity requirement of 5 to ensure plenty of living space.
Removed optionals from supply contracts to leave what to bring up to the player.
Clarified some descriptions
Switch experiment check for research payload capacity check since configure nodes don't show up as experiments.
Adjust fractionComplete to be closer to 15d
@Ballatik
Copy link
Contributor

Ballatik commented Feb 1, 2024

Adjusted and moved some rep rewards to bring it more inline with crewed lunar overall. Slightly less rep if you do only the required missions, about the same if you take the more likely path of doing about half of the repeatables, and with about the same upper bound.
Initial testing of Proto tier missions: First station works for both direct and indirect launches. Science contract optionals work, and habitation experiment tracking iterates the repeatables to keep them on track. Repeatables correctly iterate based on science completion, though I haven't tested completion yet.

Fix proto repeatable title
Allow transfer of research payload so you can resupply
Adjust long term hab to 180days
Fix proto repeat completion
Adjust final repeat science requirement so they complete before the science tracker (which would auto-fail them)
@macluky
Copy link

macluky commented Feb 5, 2024

I was looking for something like this. Do you need a tester?

@Teykn
Copy link
Contributor Author

Teykn commented Feb 5, 2024

I was looking for something like this. Do you need a tester?

Any and all testers are welcome to try this PR out.

@Kallmor
Copy link

Kallmor commented Feb 8, 2024

Since the discord link is invalid I ask it here: How do I get this PR working? On the load screen it says that this is an invalid version of RP-1 and then the mod is disabled.

@njits23
Copy link
Contributor

njits23 commented Jul 24, 2024

Right, it's in the contract description but not in experiment description. If you don't remember that value then you have to leave VAB to bring up the mission control overlay again. Showing for 30 days instead of per day is also fine.

Ah, I see where it went wrong. The description shown in the configure crew science screen comes from a different place than I thought it did, and thus the descriptions are wrong/incomplete. Will fix.
image

@siimav
Copy link
Contributor

siimav commented Jul 24, 2024

Most experiments have a warning about them taking 30 days and this doesn't appear to be true at all. Probably a copy-paste error?
image

…Configure.cfg

This is apparently the place the experiment descriptions actually get read from.
Still need to double-check some of the durations, such as Narrow Beam Radio Communication taking more than 1 day.
@njits23
Copy link
Contributor

njits23 commented Jul 24, 2024

Do note that some experiments will take longer than their stated duration, such as airglow horizon spectroscopy, because their conditions to run are not met continuously. Will double-check other durations later.

@siimav siimav marked this pull request as ready for review August 4, 2024 13:24
GameData/RP-1/ProgramHandlerSettings.cfg Outdated Show resolved Hide resolved
GameData/RP-1/Contracts/RP0_Contract_Resources.cfg Outdated Show resolved Hide resolved
GameData/RP-1/Contracts/RP0_Contract_Resources.cfg Outdated Show resolved Hide resolved
@siimav
Copy link
Contributor

siimav commented Aug 5, 2024

I consulted with smarter people than me and they thought it would be best to create 2 versions of this program.

  1. Alternative to Crewed Lunar - becomes available after Manned Orbit and has similar timescale. Probably a bit less funding than MoonBoots though since the infrasctructure requirements are a lot lower. Funding curve should also be a bit smoother than Crewed Lunar since it requires less up-front infrastructure.
  2. Taken after Crewed Lunar - the current duration is probably quite fitting for this but I think a completely flat funding curve is the best here since all the infrastructure is already in place.

The reasoning is that it's unlikely we can square the circle of balancing for both when the player needs to build launch infra and tech, and when they're reusing lunar hardware.

@siimav
Copy link
Contributor

siimav commented Aug 5, 2024

It's been suggested that maybe we should instead implement a system that allows changing the funding and duration values of another program when one gets accepted. 🤔

@njd80
Copy link
Contributor

njd80 commented Aug 7, 2024

Regardless of the choice of what to do with these Programs (which seems like it might take time), there are new crewed science experiments here - is there any way they can be decoupled from the program(s) and released as selectable crew science? A new source of crew science like this makes LEO stations desirable even without program(s)

@siimav
Copy link
Contributor

siimav commented Aug 16, 2024

Here's my suggested way forward with this program:

  • Convert it to be able to be accepted after completing Crewed Orbit.
  • Remove the now-conflicting funding curve and replace it with Mid. IMO it should be less peaky that Crewed Lunar due to requiring less infrastructure.
  • Change nominal duration to 13 years. It actually requires tech nodes that are a bit deeper in the tech tree. On the other hand progression with landing and engine tech isn't as important.
  • Other values from the spreadsheet:
    funding = 14300000
    slots = 4
    normal conf = 5250
    fast conf = 10500
    repDeltaOnCompletePerYearEarly = 920
    repPenaltyPerYearLate = 920

@njits23
Copy link
Contributor

njits23 commented Aug 16, 2024

I think players should have completed Adv. Crewed Orbit before being able to accept the stations program, because stations require rendezvous and docking. This idea is reinforced by the fact that he non-direct first crewed lunar landing is locked behind the docking contract from that program.

Regarding the funding curve, Mid seems like a terrible choice:
image
The funding curve this PR adds is slightly less peaky, as well as more front-loaded, because that's when all the LC investments are being made. See the earlier comment with the graph: #2326 (comment)

Thirteen years nominal is rather a rather excessive amount of time. Even the current program duration is perfectly fine if you accept it sometime in 1963. Don't forget that the nominal duration is on fast, and thus on normal you have 10.5 years to complete the program. If you do choose to go faster, it requires a somewhat single-minded research effort, which is in line with doing other programs on high speeds. I could see the nominal duration being 8/9 years instead of 7, which would give you a normal speed duration of 12/13.5.

Regarding the other parameters, a funding increase for the program hasn't seemed required from any of my testing. Even on moderate everything is affordable. Unless you suggest a funding increase because launching empty stations now also uses the human-rated tag, increasing their cost.

@siimav
Copy link
Contributor

siimav commented Aug 16, 2024

It's an alternative path to picking Crewed Lunar so it has to be available at the same time. I guess it could make more sense to require Adv Crew program being active instead of just having completed Crewed Orbit.
I'd like to point out that the numbers you based your funding curve on are from a career that had progressed to mid/late Crewed Lunar. As hinted before - there's gonna be another variant of this program when taken alongside or after Crewed Lunar which will have way shorter duration and probably also use the flat funding curve.

…ays their respective experiments must have been completed for to complete the contract.

Change contract group title to be plural.
@siimav siimav merged commit 25688df into KSP-RO:master Aug 18, 2024
3 checks passed
Nazfib added a commit that referenced this pull request Nov 23, 2024
The space stations program PR #2326 accidentally added ComSat, NavSat and WeatherSat payloads back to SM tanks.
Putting SoundingPayload into SM tanks is a classic "noob trap"; you should always put it into HP regular tanks, instead.
Remove all these payload resources from SM tanks again.
Capkirk123 pushed a commit that referenced this pull request Dec 14, 2024
The space stations program PR #2326 accidentally added ComSat, NavSat and WeatherSat payloads back to SM tanks.
Putting SoundingPayload into SM tanks is a classic "noob trap"; you should always put it into HP regular tanks, instead.
Remove all these payload resources from SM tanks again.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants